html, body {
    margin: 0;
    padding: 0;
}

.content {
    width: 100vw;
    height: 100vh;
    background-color: #000;
    display: flex;
    justify-content: center;
    align-items: center;
    perspective: 450;
    -webkit-perspective: 450;
}

.content .item {
    width: 8vw;
    height: 8vh;
    position: relative;
    margin: 0 0.5vw;
}

.content .item-text {
    color: white;
    font-size: 6vw;
    font-style: italic;
    font-weight: bold;
    text-align: center;
    width: 100%;
    height: 100%;
    line-height: 8vh;
    position: relative;
    opacity: 0;
    display: block;
}

.content .item::before {
    content: "";
    width: 6vw;
    height: 10vh;
    position: absolute;
    left: 1vw;
    top: -1vh;
    border: 0.3vw solid white;
    border-radius: 0.18vw;
    opacity: 0;
    transform: scale(0);
}

/* 字母颜色定义 */
.content .item.s::before,
.content .item.u::before {
    border-color: #5b4489;
}

.content .item.t::before,
.content .item.o::before {
    border-color: #aa4776;
}

.content .item.d::before,
.content .item.i::before {
    border-color: #d74061;
}

/* 字母动画定义 */
.rect.s .item-text {
    animation: animate-letter 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
    animation-delay: 0.4s;
}

.rect.t .item-text {
    animation: animate-letter 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
    animation-delay: 0.9s;
}

.rect.u .item-text {
    animation: animate-letter 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
    animation-delay: 1.4s;
}

.rect.d .item-text {
    animation: animate-letter 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
    animation-delay: 1.9s;
}

.rect.i .item-text {
    animation: animate-letter 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
    animation-delay: 2.4s;
}

.rect.o .item-text {
    animation: animate-letter 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
    animation-delay: 2.9s;
}

/* 边框动画定义 */
.rect.s::before {
    animation: animate-border 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
    animation-delay: 0s;
}

.rect.t::before {
    animation: animate-border 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
    animation-delay: 0.5s;
}

.rect.u::before {
    animation: animate-border 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
    animation-delay: 1.0s;
}

.rect.d::before {
    animation: animate-border 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
    animation-delay: 1.5s;
}

.rect.i::before {
    animation: animate-border 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
    animation-delay: 2.0s;
}

.rect.o::before {
    animation: animate-border 0.8s cubic-bezier(0.42, 0, 0.58, 1) forwards;
    animation-delay: 2.5s;
}

/* 关键帧动画 */
@keyframes animate-letter {
    0% {
        opacity: 0;
        transform: scale(0) rotate(180deg);
    }
    
    100% {
        opacity: 1;
        transform: scale(1) rotate(0deg);
    }
}

@keyframes animate-border {
    0% {
        opacity: 0;
        transform: scale(0);
    }
    
    50% {
        opacity: 1;
    }
    
    100% {
        opacity: 1;
        transform: scale(1);
    }
}